グラフ理論モデリングとは、現実世界の複雑な接続関係(インターネットルーティングや状態遷移など)を数学的対象 $G = (V, E)$ に抽象化するプロセスです。実体を頂点(Vertex) として、関係を辺(Edge)として定義することで、統一された抽象データ型(ADT)とアルゴリズムを使って多様な問題を解決できます。
主要コンポーネントの定義
- 頂点(Vertex): 別名はノード。ユニークな識別子として「キー」(Key)を持ち、付加情報(Payload)を格納することも可能です。
- 辺(Edge): 2つの頂点を接続し、その間に関係があることを示します。単方向(有向グラフ)または双方向のいずれかになります。
- 重み(Weight): 辺上の数値で、コスト(距離、遅延、帯域幅など)を表します。
数学的厳密性
数学的には、$G = (V, E)$ です。ここで $V$ は頂点の集合、$E$ は二項組 $(v, w)$ で構成される辺の集合であり、$v, w \in V$ を満たします。この高レベルの抽象構造により、地図ナビゲーションからソーシャルネットワークの推薦まで、一連のBFS/DFSアルゴリズムでさまざまな問題を解決できます。
モデリングのヒント:状態空間グラフ
論理パズル(例:水筒問題)を解く際には、各合法な状態が頂点となり、各合法な操作が辺となります。問題を解くプロセスとは、初期頂点から目標頂点への経路を見つけることなのです。